/**
 * @param {number} sx
 * @param {number} sy
 * @param {number} tx
 * @param {number} ty
 * @return {boolean}
 */
export var reachingPoints = function (sx, sy, tx, ty) {
  // 从终点向起点出发
  while (tx > sx && ty > sy && tx !== ty) {
    if (tx > ty) {
      // 如果tx > ty, 则上一步必定是 (tx - ty, ty)
      tx %= ty
    } else {
      // 如果tx < ty, 则上一步必定是 (tx, ty - tx)
      ty %= tx
    }
  }
  if (sx == tx && sy == ty) {
    return true
  } else if (tx === sx) {
    console.log(sx, sy, tx, ty)
    // 当tx === sx时，只能从ty继续减少 (sy每次的增加都是 sx + sy， 即 ty = n * sx + sy),
    // 则只须求出 ty % tx 是否等于 sy 或 0 即可
    return ty > sy && (ty - sy) % tx === 0
  } else if (ty === sy) {
    console.log(sx, sy, tx, ty)
    // 与上面的情况类似，只需要求出 sx % ty 是否等于 tx 即可
    return tx > sx && (tx - sx) % ty === 0
  }
  return false
}
